package com.coldchain.admin.user.entity;

import java.util.Date;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.omg.CORBA.IDLType;

import java.io.Serializable;

/**
 * <p>
 * 角色
 * </p>
 *
 * @author fangliai
 * @since 2018-09-11
 */
@TableName("ch_role")
@ApiModel
public class Role implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(hidden = true)
    @TableId(type = IdType.UUID)
	private String id;
    /**
     * 角色名称
     */
    @ApiModelProperty(value = "角色名称",name = "roleName",dataType = "string",required = true)
	private String roleName;
    /**
     * 描述
     */
    @ApiModelProperty(value = "描述",name = "describes",dataType = "string",required = false)
	private String describes;
    /**
     * 模块id
     */
    @ApiModelProperty(hidden = true)
	@JSONField(serialize = false)
	private String sysmodel;
    /**
     * 目标Id即用户Id
     */
    @ApiModelProperty(hidden = true)
	@TableField("targetId")
	@JSONField(serialize = false)
	private String targetId;
    /**
     * 包含的资源id集合
     */
    @ApiModelProperty(value ="资源集{比如1,2,3,4}", name = "resourceIds",dataType = "string",required = false)
	@JSONField(serialize = false)
	private String resourceIds;

	@ApiModelProperty(value ="菜单Id{比如1,2,3,4}", name = "resourceIds",dataType = "string",required = false)
	@JSONField(serialize = false)
	private String menuIds;
    /**
     * 删除标识
     */
    @ApiModelProperty(hidden = true)
    @TableLogic
	@JSONField(serialize = false)
	private Integer deleteFlag;
    /**
     * 创建人
     */
    @ApiModelProperty(hidden = true)
	private String createBy;
    /**
     * 创建时间
     */
    @ApiModelProperty(hidden = true)
	private Date createTime;
    /**
     * 变更时间
     */
    @ApiModelProperty(hidden = true)
	@JSONField(serialize = false)
	private Date modTime;
    /**
     *  变更人
     */
    @ApiModelProperty(hidden = true)
	@JSONField(serialize = false)
	private String modBy;
    /**
     * 版本号
     */
    @ApiModelProperty(hidden = true)
    @Version
	@JSONField(serialize = false)
	private Integer version;


    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getRoleName() {
		return roleName;
	}

	public void setRoleName(String roleName) {
		this.roleName = roleName;
	}

	public String getDescribes() {
		return describes;
	}

	public void setDescribes(String describes) {
		this.describes = describes;
	}

	public String getSysmodel() {
		return sysmodel;
	}

	public void setSysmodel(String sysmodel) {
		this.sysmodel = sysmodel;
	}

	public String getTargetId() {
		return targetId;
	}

	public void setTargetId(String targetId) {
		this.targetId = targetId;
	}

	public String getResourceIds() {
		return resourceIds;
	}

	public void setResourceIds(String resourceIds) {
		this.resourceIds = resourceIds;
	}

	public String getMenuIds() {
		return menuIds;
	}

	public void setMenuIds(String menuIds) {
		this.menuIds = menuIds;
	}

	public Integer getDeleteFlag() {
		return deleteFlag;
	}

	public void setDeleteFlag(Integer deleteFlag) {
		this.deleteFlag = deleteFlag;
	}

	public String getCreateBy() {
		return createBy;
	}

	public void setCreateBy(String createBy) {
		this.createBy = createBy;
	}

	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	public Date getModTime() {
		return modTime;
	}

	public void setModTime(Date modTime) {
		this.modTime = modTime;
	}

	public String getModBy() {
		return modBy;
	}

	public void setModBy(String modBy) {
		this.modBy = modBy;
	}

	public Integer getVersion() {
		return version;
	}

	public void setVersion(Integer version) {
		this.version = version;
	}

}
